/*
    This file is part of Emu.

    Emu is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    Emu is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public License
    along with Emu.  If not, see <http://www.gnu.org/licenses/>. */
#ifndef ESESSIONEDITOR_H
# define ESESSIONEDITOR_H

# include <QDialog>
# include <QStackedWidget>
# include <QTreeWidget>

# include "eprofile.h"

class ESessionEditor : public QDialog
{
    Q_OBJECT

public:
    ESessionEditor(EProfile *, QWidget *);
    ~ESessionEditor();

    bool needReset() { return _needReset; }
    bool *changes() { return _changes; }

private:
    bool *_changes;
    bool _needReset;

    EProfile *_sessPrefs;
    EProfile *_newPrefs;

    QStackedWidget *_display;
    QTreeWidget *_navTree;

    void setupNavAndDisplay();

private slots:
    void applyChanges();
    void navItemChanged(QTreeWidgetItem *, QTreeWidgetItem *);
};

#endif
